-
Notifications
You must be signed in to change notification settings - Fork 71
SHPOpenLL(): avoid GDAL specific error message when .shx is missing #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to avoid the trailing blank.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to clarify: Gdal does not need to change its build. But other distributors should define SHP_RESTORE_SHX_HINT_MESSAGE at build time.
Edit: SHPRestoreSHX is a library method, thus not GDAL specific.
Thanks for the fast fix. 🚀 |
Shapelib: resync with OSGeo/shapelib#130
AbelPau (29): Miramon: fixes and additional tests MiraMonVector fixes (2) tests improvements (+10) (#9744) MiraMonVectorDriver: deleting unused functions/parameters (#9759) MiraMonVector driver. Adding tests MIraMonVector Fix. MiraMonVector: fix memleak in creation error case (#9805) Miramon: correcting Boolean Field (and removing unnecessary things) (#9812) MiraMon: precision related fixes, and other fixes (#9815) Little fixes in MiraMon metadata files MiraMonVector fix: better condition & variable type (#9835) MiraMonVector: Two minor corrections (#9840) MiraMonVector: Fix unsigned integer overflows (ossfuzz#68585) (#9841) MiraMonVector: adding wich polygon cycles the arc in the metadata info MiraMonVector: free allocated memory MiraMonVector: Adding more matchs in the look-up table MM_m_idofic.csv MiraMonVector: Fixing error in linestring (from not polygon) metadata file MiraMonVector: Fixing the way that Z are written in MiraMon layers (#9938) MiraMonVector: Fixing chromium bug 68809 Fixing chromium bug 68809 correctly MiraMonVector: fix a case of sensitive comparison MIraMonVector: fixing MMResetFeatureRecord MiraMonVector: fixing accepted metadata versions/subversions MiraMonVector: fix Issue 70860 in oss-fuzz MiraMonVector: Fix Issue 69168 oss-fuzz MiraMonVector: fix memory leak on corrupted products (oss-fuzz 369216702) (#10872) MiraMonVector Fix issue 5250834764464128 MiraMonVector: fix issue 372358476 MiraMonVector: fix a case of mutirecord (lists) in some fields (#11148) MiraMonVector: Fix issue 393742177 oss-fuzz Alan Thomas (1): Improve error message when OGRSimpleCurve point limit is exceeded AlbertXingZhang (1): OpenFileGDB: add missing GetIndexCount() in FileGDBTable::CreateIndex Alessandro Pasotti (33): [argparse] Return argument reference from add methods gdal_contour: use GDALArgumentParser (#9739) typo in gdaltindex.rst argparse: update to upstream b85a0a414d415 with store_into<set> GDALArgumentParser: add add_layer_creation_options_argument method Use add_layer_creation_options_argument when possible [gdal_tindex] Use GDALArgumentParser [ogrtindex] Use GDALArgumentParser (#9832) [gdal_footprint] Use GDALArgumentParser (#9845) [argparser] Add method for -dsco option Apply dsco changes to gdal_footprint [gdal_create] Use GDALArgumentParser (#9884) [gdalmdiminfo] Use GDALArgumentParser (#9896) [gdalmdimtranslate] Use GDALArgumentParser (#9912) GDALArgumentParse: support sub-parsers (take ownership) [gdaldem] Use GDALArgumentParser Fix MSVC warning [argparse] update library Apply https://github.com/p-ranav/argparse/pull/360 Remove scan<double> now that argparse supports multiple actions [gdalmanage] Use GDALArgumentParser [gdalmanage] Update/fix documentation [gdalmanage] Tests [ogrlineref] Use GDALArgumentParser (#10147) [gdalwarp] Fix -ovr {absolute_value} (#10193) [gpkg] Implement ALTER TABLE RENAME for rasters (#10213) [gdal_contour] Allow to use -fl with -i and -e (#10471) gdal_rasterize: port to argument parser (#10741) [gdal_rasterize] Fix crash with no options after argparser (#10770) (master only) [gdal_contour] Fix argparse nargs issue [gdal_contour] Fix regression when fixed level == raster max (#10885) [gdal_rasterize] allo -q in library mode [gdal_rasterize] Also accept doubles for -ts (#11830) Anders Barfod (1): Docs: update pmtiles.rst with examples (#9977) Andrea Giudiceandrea (6): Fix coordinate_epoch.rst since PROJ 9.4 Fix verb tense in ogr2ogr.rst Fix verb tense in gdalwarp.rst Fix verb tense in gdaltransform.rst docs ogrinfo: add a note to -so option with -json Docs: fix incorrect and missing World Files ref Andrew Bell (12): argparse.hpp: robustify some store_into() methods viewshed: rework to be more C++ish viewshed: Use member functions and clarify variable names. gdal_viewshed: multi-threaded implementation (#9991) Viewshed: create current extent (no functional change) (#10184) Viewshed: address potential issues with line-based interpolation (#10237) Viewshed: support observers to left and right of input raster (#10264) Viewshed: support observer above and below the raster. (#10352) Thread pool: Use std::function as pool job function (#10505) Add support for accepting std::function<void()> in a job queue. (#10628) Add support for cumulative viewshed (#10674) GDALDatasetPamInfo: use std::array<> for adfGeoTransform member (#10795) Andrew C Aitchison (2): flake8 config does not support inline comments GTIFF: store bJXLLossless as a bool Andrew Harvey (1): Update gdal2tiles.rst typo webp->jpeg in jpeg options section (#10286) Andrew Johnston (1): Fix rendering of code block in python readme Anywalker (1): OpenFileGDB: exclude straight line segments when parsing arcs Bart Louwers (1): Link to felt/tippecanoe Ben Lewis (1): User configuration docs: mention default User-Agent (#10124) Ben Peters (1): examples/crs2crs2grid.py: Update to work with current data output format from HTDP (fixes #2655) (#10389) Björn Harrtell (1): FlatGeobuf: fix reading of conformant single-part MultiLineString (#10775) Brad Hards (3): Doc: fix language related to georeferencing source selection (#9919) heif: make simple identification more robust (#10618) avif: typo fix Curtis Doty (2): Avoid confusing/misleasing error Show proper error when lcms2 is missing Dan Baston (3): autotest: Add a VSIFile wrapper class (#8222) Python bindings: Avoid linear scan in gdal_array.NumericTypeCodeToGDALTypeCode (#10694) gdalwarp: allow specifying units of warp memory (#10976) Daniel Baston (50): Python bindings: Make ogr.DataSource a synonym of gdal.Dataset Python bindings: Remove ogr.Driver Doc: Provide Python docstrings for some ogr functions Python API: Ensure that ogr functions return known type if gdal not imported GDALDriver: Support OGR API Spy autotest ograpispy.py: use tmp_path autotest: avoid calling deprecated Dataset.Destroy CMake: Add missing dependency on gdal_operations_docs.i Doc: Add Python docstring for gdal.FillNodata Doc: Set rst_prolog to make substitutions.rst available in all files Doc: Update option lists with info on how to set options Doc: substitutions.rst: shorten Python references OGRGeometry: Add BufferEx method Doc: Add comments on how to update API documentation Python scripts: Use decorator to enable exceptions Python bindings: Avoid crash when using orphaned subgeometry Doc: Updates to download.rst Doc: Move 3.8.5 to download_past.rst Doc: Add ancient releases to download_past.rst Doc: Add some dev info from wiki CMake: Remove unneeded dependency on Java AWT Doc: Use html_static_path and html_extra_path to handle non-rst HTML content Doc: Add ReadTheDocs configuration Doc: Setup redirects using ReadTheDocs Doc: Hide TOC using rst syntax Doc: Avoid shellcheck warning in RTD script Doc: Restore links to PDF and ZIP versions of docs Doc: Config changes to support ReadTheDocs addons Doc: Add a robots.txt file Doc: redirect pre-versioned URLs to /en/latest/ Doc: Add additional static resources CI: Reduce scope of doc_build.yml, rename to doc_checks.yml CI: Fix warning from spell check CI: Avoid compiling tests in doc checks Doc: Fix URL in GitHub edit links Doc: Restore driver list on main page Doc: Make sidebar version text visible Doc: Add Python doc for SpatialReference.StripVertical Doc: Clarify behavior of gdalwarp -et option GDALCreateApproxTransformer: Clarify dfMaxError description in docstring CI: Fix ReadTheDocs test for [ci skip] with multiline commit messages Doc: Add more detail to THRESHOLD config option Doc: Add high-level description of gdalwarp procedure Doc: Add description of gdalwarp source pixel weighting autotest: add tests for OGR AddCurveDirectly methods OGRGeometry: Factor isRingCorrectType out of checkRing CPLDebug: Accept values of YES,TRUE,1 Doc: Add summary of user survey Docs: Clarify behavior of gdalbuildvrt -te when source extends beyond inputs. VRT processed dataset: Read scale and offset from src dataset Daniel Evans (2): Fix "intput" typo in gdal_merge.rst Update ESRI WMS links Dirk Vanden Boer (1): Add new shapelib API functions to the symbol rename header Edouard Choinière (3): CI: Add branches-ignore on pushes to backport branches for CodeQL workflow CI: Add branches-ignore on pushes to dependabot branches CI(CodeQL): Speed up workflow by not compiling tests and using debug builds Erik Schnetter (3): gdalmultidim.cpp: Remove superfluous semicolon Zarr: Allow int64 attributes (#10065) gdalmultidim: correct error message (#10435) Even Rouault (1488): CI: add a stale target for pull requests without recent activity Update master to 3.10.0dev CI: disabled running Python autotests on OSX Arm64 (works around #9723) GPKG: suppress Coverity Scan false positive about missing lock (CID 1525521) VSIMemHandle::Eof(): add lock (CID 1525499) MVT: add lock (CID 1525450) GTiff: replace CPLMutex* usage with std::mutex GTiff: avoid Coverity Scan false positive about missing lock (CID 1525497, 1525186) CPLReleaseLock(): suppress Coverity false positive (CID 1525432) cpl_vsil_gzip.cpp: avoid accessing a variable outside of a lock (CID 1525353) /vsicurl: suppress false positive missing_lock (CID 1525347, 1525063) GDALDestroyGlobalThreadPool(): destroy it under mutex (CID 1525281) cpl_worker_thread_pool.cpp: suppress Coverity Scan false positive about missing lock (CID 1525235) GWKProgressMonoThread(): suppress Coverity Scan false positive about missing lock (CID 1525221) CPLMutexHolder constructor: try to avoid Coverity LOCK_EVASION warning (CID 1525195) test_cpl.cpp: suppress Coverity Scan false positive about missing lock (CID 1525189) overview.cpp: suppress Coverity Scan false positive about missing lock (CID 1525129, 1525097) GDALGridProgressMonoThread(): suppress Coverity Scan false positive about missing lock (CID 1525052) GDALSuggestedWarpOutput2(): make changes of PR #9336 honour SRC_METHOD=NO_GEOTRANSFORM TileDB: fix crash in previous commit TileDB: use GEOM_WKB type when creating geometry columns with TileDB >= 2.21 gdalurlopen(): handle http.client.RemoteDisconnected exception CMake: add missing dependency to generate_gdal_version_h target when building {plugin}_core targets Miramon: avoid harmless unsigned integer overflow (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68240) Miramon: avoid unsigned integer overflow (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68241) TileDB: remove TILEDB_DEPRECATED suppression CMake: require TileDB >= 2.15 cppcheck.sh: avoid warnings related to PROJ Add OSRIsDerivedProjected() / OGRSpatialReference::IsDerivedProjected() OGR_CT: use PROJJSON rather than in WKT:2019 TileDB: cleanups related to requiring TileDB >= 2.7 TileDB: cleanups related to requiring TileDB >= 2.9 TileDB: cleanups related to requiring TileDB >= 2.10 TileDB: cleanups related to requiring TileDB >= 2.11 TileDB: cleanups related to requiring TileDB >= 2.14 TileDB: make cppcheck happy TileDB: cleanups related to requiring TileDB >= 2.15 ossfuzz build.sh: update for latest poppler [ci skip] Update p-ranav/argparse to latest master ogrinfo and ogr2ogr: update to use store_into(GIntBig&) GDALArgumentParser: fix dealing with positional arguments that are negative numeric values (needed for gdallocationinfo) gdallocationinfo: use GDALArgumentParser Miramon: CMakeLists.txt: tag the driver as PLUGIN_CAPABLE NO_DEPS, instead of just PLUGIN_CAPABLE GDALOpen(): avoid double '.' in error messages related to plugin drivers CI: add a configuration testing numpy 2.0.0rc1 Docker: update ubuntu-small to 24.04 [ci skip] ogr2ogr.rst: clarify -gcp pyproject.toml: use numpy>=2.0.0rc1 for python >=3.9 Docker: update ubuntu-full to 24.04 [ci skip] GDALVectorInfo(): fix 3.9.0beta1 regression regarding passing layer names Doc: JSon -> JSON Update scripts/typos_allowlist.txt [ci skip] Shapelib: resync with upstream OGRPGDecodeVersionString(): cleanup swig/python/README.rst: document workaround if numpy 2 cannot be installed source/api/python_bindings.rst: resync with swig/python/README.rst docker/ubuntu-full/Dockerfile: re-enable QB3 [ci skip] Miramon: avoid Unsigned-integer-overflow in MMCreateExtendedDBFIndex() docker/ubuntu-full/bh-proj.sh: shellcheck fix Doc: updates to support building with upcoming update proj-docs Docker image updated to Ubuntu 24.04 Internal libtiff: EvaluateIFDdatasizeReading(): avoid unsigned integer overflow (master only) Arrow/Parquet: fix writing empty point Z with GEOMETRY_ENCODING=GEOARROW_INTERLEAVED, and test spatial filtering of that encoding CI: fix Conda platform names for latest GHA MacOS name changes Revert "CI: fix Conda platform names for latest GHA MacOS name changes" CI: conda.yml: change macos-latest to macos-13 doc_build.sh: fix 'deploy ssh key' step CI: add a Ubuntu 24.04 config ogr2ogr.rst: remove out of topic LIMIT 2 typo fixes [ci skip] gdalinfo and ogrinfo -json: add newline character at end of JSON output OGRFeature::SetField(): add warnings when detecting some lossy conversions (refs #9792) OGRLayer::WriteArrowBatch(): add tolerance for field type mismatches if int32/int64/real Parquet: fix ResetReading() implementation, when using the ParquetDataset API and when there's a single batch Parquet: fix opening single file Parquet datasets with the ParquetDataset API when using PARQUET:filename.parquet Really fix Coverity Scan warning OGRCloneArrowArray(): add missing support for 'tss:' Arrow type NEWS.md: update with 3.9.0beta2 [ci skip] dependabot.yml: change interval to monthly TileDB: C++ify things a bit tiledb: modernize tests tiledb_write.py: test ds.GetSubDatasets() TileDB raster: allow to potentially read/write more than 2GB at once TileDB: IRasterIO(): fix checks related to pixel/line/band spacing for optimized code paths TileDB: CopySubDatasets(): support very large number of blocks and very large block size misc.py: add exemption for TileDB TileDB raster: in Create()/CreateCopy() mode, defer dimension/domain/attribute/array creation at the maximum TileDB: CreateCopy(): return nullptr in error cases TileDB raster: implement GetNoDataValue()/SetNoDataValue() gdal_viewshed, nearblack, ogr2ogr: call store_into() after default_value() HDF5: support HDF5EOS metadata where the GROUP=GridStructure has an empty sub GROUP=Dimension HDF5: implement GetOffset() and GetScale() for netCDF metadata items add_offset and scale_factor gdal2tiles: support an input dataset name not being a file (fixes #9808) python_bindings.rst: fix formatting Doc building: import GDAL Python bindings early CI: re-enable MacOS Python tests docker/ubuntu-full/Dockerfile: update OGDI packaging bug workaround [ci skip] TileDB multidim: prevent infinite recursion when opening an array in a group where there are 2 or more 2D+ arrays TileDBGroup::OpenMDArray(): fix opening an array, member of a group, which has no explicit name doc/Makefile: add a 'doxygen_check_warnings' target to ease local checks CI: mingw64: add mingw-w64-x86_64-blosc dependency ogrtindex.rst: fix example Make sure GDALDestroy() appears in Doxygen output Deprecate GDALDestroyDriverManager() and OGRCleanupAll() Remove MSVC 'horrible hacks' dating back from 2014, and hopefully no longer needed doc/Makefile: make it work with any BUILDDIR (refs #5484) CMake: add html, man, latexpdf, doxygen, doxygen_check_warnings, clean_doc targets CI: code_checks.yml: run doxygen check on ghcr.io/osgeo/proj-docs to get Doxygen >= 1.9.3 Warper: add a NODATA_VALUES_PCT_THRESHOLD warping option gdal2tiles: add --nodata-values-pct-threshold option Rename variable to avoid false positive typo alert typo fixes VSI CopyFile() implementations: make them actually robust to pszSource==nullptr Add VSICopyFileRestartable() to allow restart of upload of large files CheckCitationKeyForStatePlaneUTM(): avoid integer overflow (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68675) Doc: indicate how to configure /vsis3/ with Minio Fix 2 minor Coverity Scan warnings /vsigs/: fix RmdirRecursive() on an empty directory /vsigs/ UnlinkBatch(): make sure that path config options are checked for the deleted files and not '/vsigs/batch/' /vsiaz/ UnlinkBatch(): make sure that path config options are checked for the deleted files scripts/completionFinder.py: fix it to be compatible of the output of GDALArgumentParser, and other fixes Refresh gdal-bash-completion.sh Java and CSharp bindings: do not build sample/tests programs if BUILD_TESTING=OFF NEWS.md: refresh with 3.9.0rc1 [ci skip] PG: LoadTables(): do not list ogr_system_tables schema in non-PostGIS mode or LIST_ALL_TABLES=YES PG: fix retrieving layer description in non-PostGIS mode ogr_pg.py: make only_without_postgis annotation really test non-PostGIS mode PG: emit warning when using GEOMETRY_NAME!=wkb_geometry on non-PostGIS enabled database (fixes #9852) PG: avoid aborting transactions when calling LoadMetadata() and ogr_system_tables.metadata doesn't exist GenBIN: avoid integer overflow (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68709) VSICopyFileRestartable(): add support for multi-threading in /vsis3/ implementation PDF: C++'ify m_papoLayers member PDF vector reading: fix wrong order of matrix multiplication for 'cm' operator... (fixes #9870) PDF vector reading: make ExploreContentsNonStructured() be able to parse OGCs in Resources.XObject.Resources.Properties as generated by ArcGIS 12.9 (fixes #9870) PDF vector reading: just ignore unknown objects referenced by /Do (fixes #9870) PDF vector reading: add debug traces with stream line number PDF vector reading: make GraphicState a inner class of PDFDataset PDF vector reading: propagate GraphicState when recursively calling ParseContent gdaltest.download_file(): make chunk size configurable ogr_pdf.py: add test case for #9870 AVCBin: avoid integer overflow (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68814) MapInfo .mif/.tab: implement read/write support for MapInfo logical type to OGR OFSTBoolean PDF: fix build with PoDoFo >= 0.10 with C++20 compilation (fixes #9875) cpl_recode.cpp / swq_op_general.cpp: fix compiler errors in C++20 mode netCDF: fix build error with gcc 13.2 -std=c++23 VRT: avoid 'Deprecate implicit capture of this via [=]' warnings in C++20 Workaround various false-positive -Wnull-dereference warnings in C++23 -O2 with gcc 13.1 GMLAS: fix gcc 13.2 warning .github/workflows/alpine/build.sh: use CMAKE_CXX_STANDARD=23 vsis3.py: simplify testing a bit MITAB .tab: AlterFieldDefn(): fix data corruption when altering (for example) renaming a Integer/Float32 field of size 4 (or Integer64/Float64 field of size 8 gdal_priv.h: fix issue with Doxygen unnamed parameters for methods of GDALDataset and GDALRasterBand GML: fix memory leak due do xlink:href substitution in a non-nominal case. Doc: better explain what NoDataFromMaskSource is used for Miramon: remove always true/false conditions GTiff: fix nMaxBits computation for Float32/Float64 Workaround various false positive of cppcheck 2.13.0 (as shipped in ubuntu 24.04) cppcheck.sh: add/update a few defines CI: add a job with cppcheck of Ubuntu 24.04 STACIT: add a OVERLAP_STRATEGY opening option to determine how to handle sources fully overlapping others, and taking into accout nodata values Doc: advertize 3.9.0 Fix -Werror=calloc-transposed-args with gcc 14 Fix false-positive -Wnull-dereference with gcc 14 configure.cmake: fix build with mingw64 with gcc 14 test_gdalmdimtranslate_classic_to_multidim(): make it robust to gcore/data/byte.tif.aux.xml presence Fix a few tests to not create data/byte.tif.aux.xml autotest/conftest.py: detect unintended creation of gcore/data/byte.tif.aux.xml CI: Tune Ubuntu 22.04 VM ASLR to workaround issue with clang ASAN FlatGeoBuf: more explicit error message in case of feature geometry type != layer geometry type CI: remove useless skip ci conditions Rasterize: mention that behavior is unspecified when the polygon is just touching the pixel center in ALL_TOUCHED=NO mode docker/ubuntu-full: update to tiledb 2.23.0 [ci skip] OSR importFromESRI() Arc/Info 7 .prj: fix importing LAMBERT_AZIMUTHAL with a 'radius of the sphere of reference' docker/README.md: advertize 3.9.0 images [ci skip] CI Conda: remove no longer needed patches gti.py: remove temporary file GDALIdentifyDriverEx(): pass nIdentifyFlags to GDALOpenInfo, so that drivers can see which type of dataset is asked for OpenFileGDB Identify: if nOpenFlags == GDAL_OF_RASTER, and the dataset is local, check file extensions to better identify OpenFileGDB: more informative warning message when opening a dataset with a .cdf file and FileGDB driver isn't there SQL SQLite dialect: fix translation of "x IN (NULL)" with "recent" (at least > 3.31.1) versions of SQLite3 Doc: gdalmdimtranslate: document -strict OGR SQL: fix compliance of NOT and IN operators regarding NULL values autotest: make test_ogr_gmlas_get_gml_and_iso_schemas() more robust to Inspire server being not available ogrinfo: fix error message when not specifying a filename GDALNoDataMaskBand::IRasterIO(): fix crash on memory allocation failure Fix 5 CodeQL cpp/integer-multiplication-cast-to-long warnings GetNextArrowArray() generic implementation: avoid calling VSI_MALLOC_ALIGNED_AUTO_VERBOSE() with a zero size VSIMallocAligned(): make behaviour more predictable when nSize == 0 GDALNoDataMaskBand::IRasterIO(): speed optimization, and reduce copy&paste Parquet dataset (multi-file typically): enable use of bounding box columns for spatial filter Parquet: harmonize thread handling between non-dataset and dataset mode Add OGRArrowIsGeoArrowStruct() and use it Arrow/Parquet: add a OGRArrowLayer::SanityCheckOfSetBatch() method Parquet dataset (multi-file typically): implement SetIgnoredFields() Parquet dataset (multi-file typically): make spatial filter work ignoring geometry field Parquet dataset (multi-file typically): optimize spatial filtering Parquet dataset (multi-file typically): implement SetAttributeFilter() Parquet dataset (multi-file typically): optimize spatial filtering on GeoArrow struct Point even when there is no bounding box column Add a static version of OGRLayer::FilterWKBGeometry() Add OGRGeometry::IsRectangle() and use it in OGRLayer::InstallFilter() Add testing for OGRGeometry::IsRectangle() Parquet dataset (multi-file typically): implement geometry intersection from WKB column as a Arrow compute function Parquet: bring back run-time compatibility with libarrow <= 13 Doc: add hint to use paths with forward slashes on Windows JSONFG identification: recognize more JSON-FG specification version Test opening a JSONFG file with just coordRefSys as a hint it is one GeoJSON/JSONFG: do not recognize GeoJSON files with a featureType feature property as JSONFG GeoJSON/JSONFG: make it possible with -if/papszAllowedDrivers to force opening a JSONFG file with the GeoJSON driver GDALIdentifyDriverEx(): transmit papszAllowedDrivers to Identify(), Add CPLJSonStreamingParser::StopParsing() autotest: test_wms_15: make it robust to flaky server JSONFGIsObject: use CPLJSonStreamingParser::StopParsing() typo fix [ci skip] Extend scripts/typos_allowlist.txt [ci skip] CPLHTTPFetch(): add a RETRY_CODES option (GDAL_HTTP_RETRY_CODES config option) README.md: update Travis-CI badge [ci skip] gdalwarp: fix help message for -wm (fixes #9960) CI: try to fix Travis-Ci Graviton2 builds GDALRasterizeGeometries(): document OPTIM option GDALRasterizeGeometries(): various robustness fixes GDALPansharpenOperation::PansharpenResampleJobThreadFunc(): make it more robust GDALDataset::RasterIO() / GDALDatasetRasterIO[Ex](): accept a const int* panBandList, instead of a int* Fix a few Coverity Scan warnings Make GDALDataset::IRasterIO() implementations ready to switch to use const int* panBandList CI: enable -DGDAL_BANDMAP_TYPE_CONST_SAFE on ubuntu 24.04 config GDALCopyWords(): adjust documentation Link RasterIO() doc to GDALCopyWords64() CI: fix Conda builds CI: workaround issue with latest version of coverallsapp/coverage-reporter VSIS3WriteHandle -> VSIS3WriteHandle class renaming OpenFileGDB: add partial read-only support for tables with 64-bit ObjectIDs Add C++ facilities for HTTP retry logic /vsiaz/: add BLOB_TYPE=BLOCK and CHUNK_SIZE options to VSIFOpenEx2L() vsiadls.py: fix test on machines with ~/.azure credentials available ISIS3: Create(): open file(s) in wb+ mode if possible PDS4: Create(): open file in wb+ mode if possible /vsimem/: make Read() error for a file not opened with read permissions /vsicrypt/: if opening in write-only mode, do so on the underlying file as well /vsigzip/: sanitize Eof() detection Add VSIFErrorL() and VSIFClearErrL(), and implement them Use VSIFErrorL() in complement of VSIFEofL() VSIWin32Handle: Read(): unhandle cleanly nSize * nCount > UINT32_MAX /vsigzip/: Read(): detect attempts to read more than 4 GB at once test_vsifile_CopyFileRestartable(): silence error message cpl_vsil_crypt.cpp: remove a few useless casts VSICopyFile(): detect error when reading source file, and delete output file on error PDF: fix build against PoDoFo with MSYS2 UCRT64 and CLANG64 environments CI: add package mingw-w64-x86_64-podofo OGRSQL: validate column name in COUNT(field_name) PDF: split import of SDK headers into separate file per backend ogr_sql_test.py: enable exceptions, and parametrize more tests CI: linux_build.yml: remove pin to coverage-reporter-version v0.6.10 OGRGenSQLResultsLayer: modernize C++ usage LIBKML: fix handling of styleUrl element referencing to an external document SWIG Python/Java: replace sprintf() with snprintf() to avoid warnings on OSX VSIFOpenExL(): clarify that CHUNK_SIZE also works for /vsis3/, /vsigs/, /vsioss/ Arrow/Parquet: fix compiler warnings on 32bit with clang -Wshorten-64-to-32 Fix various compiler warnings on 32bit with clang -Wshorten-64-to-32 CI: switch Alpine 32bit to Clang docker: update Alpine images to 3.20 [ci skip] Doc: reduce width of synopsis of gdalwarp and ogr2ogr Doc: Mark GDALSimpleImageWarp() and GDALReprojectImage() as superseded per GDALWarp() scripts/cppcheck.sh: ignore stlIfStrFind warning ESRIJSON: make it able to parse response of some CadastralSpecialServices ESRI APIs ESRIC: ingest more bytes to be able to identify more datasets OpenFileGDB writer: correctly set flag on non-editable Shape_Length/Shape_Area special fields OpenFileGDB writer: .gdbtable header must be rewritten when updating an existing feature at the end of file OpenFileGDB: BuildSRS(): do not use CPLErrorReset() OpenFileGDB: detect and try to repair corruption of .gdbtable header IVSIS3LikeFSHandler::GetUploadChunkSizeInBytes(): rewrite test in a way to please Coverity Scan (CID 1546505, 1546504) Doc: explain what DOI is (fixes #10020) Add GDALArgumentParser::add_extra_usage_hint() gdal_contour: add help hint that one and only of -i, -fl or -e must be used argparse.hpp: add argument name after 'Too few arguments' error Python utilities: avoid UseExceptions() related deprecation warning when launched from launcher shell scripts Python bindings: do not emit warnings about not having used [Dont]UseExceptions() if run under gdal.ExceptionMgr() Python bindings: avoid gdal.ExceptionMgr() to re-throw a GDAL exception already caught under it Python bindings: avoid exception emitted and caught under gdal.ExceptionMgr() to cause later issues gdaltest.run_py_script(): add a return_stderr: bool argument Python scripts: use local exception manager, instead of global UseExceptions() autotest/pyscripts: check that python scripts don't emit the FutureWarning about UseExceptions() test_gdal2xyz.py: skip on sanitize CI CI: skip test_gdal2tiles_py_invalid_srs on sanitize CI TileDBRasterBand::IRasterIO(): avoid reading out-of-raster with TILEDB_ATTRIBUTE creation option, when the block size is not a multiple of the raster size TileDB: CreateCopy(): do not force returned dataset to be in read-only mode Add a more C++ friendly GDALRegenerateOverviewsMultiBand() signature Add VSIToCPLErrorWithMsg() /vsis3/: avoid emitting a CPLError() when bSetError=false and access=r+b ; GTiff: turn VSIError into CPLError on creation cpl_error.h: provide 'do {} while(0)' expansion for empty CPLDebug/CPLDebugOnly()/CPLAssert() TileDB: clarify code comment include_tiledb.h: reintroduce MSVC 4996 warning suppression that was removed per 130560b919ef774d204f702fde533fe896eb4e0f TileDB: catch potential TileDB exceptions in Open() and IRasterIO() TileDB raster: honor CREATE_GROUP=YES, and implement BuildOverviews() in that mode TileDB raster: implement BuildOverviews() for base dataset not in group mode TileDB: document existing open and creation options TileDB: document new CREATE_GROUP creation option TileDB: add a overview_model.rst design document TileDB tests: add a test to check deprecated GeoTIFF side-car .ovr is still functional Revert "TileDB raster: implement BuildOverviews() for base dataset not in group mode" TileDB raster: change name of overview level arrays to 'l_{level}' TileDB: overview_model.rst: update it with latest changes TileDB: advertize GDAL_DCAP_CREATE_LAYER TileDB: change CREATE_GROUP default value to YES for rasters ESRIJSON: do not set width on DateTime field CI: skip test_gdal_polygonize_help on sanitize CI gdal_pansharpen.py: fix previous wrong change HDF5: add support for libhdf5 >= 1.14.4.2 when built with Float16 gdal_python_utilities.rst: remove note Doc: add note regarding Creation vs Copy for raster drivers CSV: error out if invalid/inconsistent value for GEOMETRY layer creation option Shapelib: resync with https://github.com/OSGeo/shapelib/pull/130 GML: GML_SKIP_RESOLVE_ELEMS=HUGE: keep gml:id in .resolved.gml file GML: avoid assertion due to trying to load existing .gfs file after reading .resolved.gml GML: fix issue with nested elements with identical names in GML_SKIP_RESOLVE_ELEMS=HUGE mode GML: make sure SRS is detected when using GML_SKIP_RESOLVE_ELEMS=HUGE on a AIXM file, otherwise GML_SWAP_COORDINATES might not work correctly gml.rst: add note about deleting .gfs file TAB_CSLLoad(): simplify, and make it work properly with /vsitar (related to recent VSIFErrorL() changes) TABSeamless::OpenForRead(): avoid potential double-free typo fix STACIT: honour MAX_ITEMS=0 as meaning unlimited as documented CMake: add infrastructure so we can build plugins that can be loaded against a libgdal that has been without any support for them CMake: add_gdal_driver(): try trick to make sure we get a different object file OCI: use NO_SHARED_SYMBOL_WITH_CORE MrSID: use NO_SHARED_SYMBOL_WITH_CORE PostGISRaster: use NO_SHARED_SYMBOL_WITH_CORE HEIF: use NO_SHARED_SYMBOL_WITH_CORE netCDF: avoid issue with CMAKE_UNITY_BUILD=ON netCDF: use NO_SHARED_SYMBOL_WITH_CORE GeoRaster: use NO_SHARED_SYMBOL_WITH_CORE PDF: use NO_SHARED_SYMBOL_WITH_CORE JPEGXL: use NO_SHARED_SYMBOL_WITH_CORE JPEG: use NO_SHARED_SYMBOL_WITH_CORE WebP: use NO_SHARED_SYMBOL_WITH_CORE EXR: use NO_SHARED_SYMBOL_WITH_CORE KEA: use NO_SHARED_SYMBOL_WITH_CORE WMTS: use NO_SHARED_SYMBOL_WITH_CORE PDS: use NO_SHARED_SYMBOL_WITH_CORE HDF5: use NO_SHARED_SYMBOL_WITH_CORE Rasterlite: use NO_SHARED_SYMBOL_WITH_CORE GIF: use NO_SHARED_SYMBOL_WITH_CORE PCRaster: use NO_SHARED_SYMBOL_WITH_CORE JP2Lura: use NO_SHARED_SYMBOL_WITH_CORE ECW: use NO_SHARED_SYMBOL_WITH_CORE GRIB: use NO_SHARED_SYMBOL_WITH_CORE OpenJPEG: use NO_SHARED_SYMBOL_WITH_CORE NITF: use NO_SHARED_SYMBOL_WITH_CORE PCIDSK: use NO_SHARED_SYMBOL_WITH_CORE FITS: use NO_SHARED_SYMBOL_WITH_CORE DDS: use NO_SHARED_SYMBOL_WITH_CORE JP2KAK: use NO_SHARED_SYMBOL_WITH_CORE WMS: use NO_SHARED_SYMBOL_WITH_CORE GTA: use NO_SHARED_SYMBOL_WITH_CORE Zarr: use NO_SHARED_SYMBOL_WITH_CORE WCS: use NO_SHARED_SYMBOL_WITH_CORE MSG: use NO_SHARED_SYMBOL_WITH_CORE MRF: use NO_SHARED_SYMBOL_WITH_CORE PNG: use NO_SHARED_SYMBOL_WITH_CORE BASISU/KTX2: use NO_SHARED_SYMBOL_WITH_CORE JPIPKAK: use NO_SHARED_SYMBOL_WITH_CORE TileDB: use NO_SHARED_SYMBOL_WITH_CORE HDF4: use NO_SHARED_SYMBOL_WITH_CORE MySQL: use NO_SHARED_SYMBOL_WITH_CORE Carto: use NO_SHARED_SYMBOL_WITH_CORE XLS: use NO_SHARED_SYMBOL_WITH_CORE VFK: use NO_SHARED_SYMBOL_WITH_CORE Parquet: use NO_SHARED_SYMBOL_WITH_CORE PG: use NO_SHARED_SYMBOL_WITH_CORE OGDI: use NO_SHARED_SYMBOL_WITH_CORE OpenFileGDB: use NO_SHARED_SYMBOL_WITH_CORE MSSQLSpatial: use NO_SHARED_SYMBOL_WITH_CORE LIBKML: use NO_SHARED_SYMBOL_WITH_CORE Feather: use NO_SHARED_SYMBOL_WITH_CORE ODBC: use NO_SHARED_SYMBOL_WITH_CORE GMLAS: use NO_SHARED_SYMBOL_WITH_CORE DWG/DGNv8: use NO_SHARED_SYMBOL_WITH_CORE Elastic: use NO_SHARED_SYMBOL_WITH_CORE FileGDB: use NO_SHARED_SYMBOL_WITH_CORE SOSI: use NO_SHARED_SYMBOL_WITH_CORE CAD: use NO_SHARED_SYMBOL_WITH_CORE HANA: use NO_SHARED_SYMBOL_WITH_CORE IDB: use NO_SHARED_SYMBOL_WITH_CORE PLScenes: use NO_SHARED_SYMBOL_WITH_CORE MongoDBV3: use NO_SHARED_SYMBOL_WITH_CORE CMake: make NO_SHARED_SYMBOL_WITH_CORE compulsory when CORE_SOURCES is declared Update RFC96 with NO_SHARED_SYMBOL_WITH_CORE changes STACIT: implement paging using POST method Update doc/source/programs/gdal_fillnodata.rst ogr2ogr: error out if GCP transform creation fails ogr2ogr: use more std::unique_ptr<> GCPTransformer: accept only 2 points for order=1 transformer CI: Travis-CI: disable arm64-graviton2 builds, due to the OSGeo Travis-CI plan being downgraded to 2 concurrent builds [ci skip] ogr2ogr: do not call CreateLayer() with a geom field defn of type wkbNone FileGDB: be robust to be called with a geometry field definition of type wkbNone Doc adjustments (from https://github.com/OSGeo/gdal/pull/10089) gdal_create.rst: clarify -burn ESRIJSON: fix paging when URL contains f=pjson instead of f=json docker/ubuntu-full/Dockerfile: update ARROW_VERSION [ci skip] PG: avoid errors related to ogr_system_tables.metadata when user has not enough permissions PG: really honor OGR_PG_ENABLE_METADATA=NO in SerializeMetadata() Doc: multithreading: explicit why GDALDataset is not thread-safe (#10097) TABView::OpenForRead(): avoid potential double-free netCDFAttribute::IWrite(): fix writing an array of (NC4) strings, from a non-string array VICAR: avoid harmless unsigned integer overflow netCDF: try to better round geotransform values when read from single-precsion lon/lat float arrays test_gdalwarp_lib.py: add test for warping an image with [-180,180] longitude to [180 - X, 180 + X] Warper: relax longitude extend check to decide whether we can insert a CENTER_LONG wrapping longitude Fix various Coverity warnings (master only) typo fixes [ci skip] OpenFileGDB: fix CodeQL cpp/integer-multiplication-cast-to-long warning VSIStatL(): allow trailing slash on mingw64 builds AAIGRID: fix forcing datatype to Float32 when NODATA_value is nan and pixel values look as ints GDALContourGenerateEx(): validate LEVEL_INTERVAL option VRT: fix processing of LUT where the first source value is NaN OGRSpatialReference: workaround bug of PROJ < 9.5 regarding wrong conversion id for UTM south geojsonseq.rst: fix link to ndjson Doc: fix link Doc: OpenFileGDB: document that sdc format can't be read GeoTIFF multithreaded reading: avoid emitting tons of warnings when ExtraSamples tag is missing OGRSpatialReference::FindMatches(): improve when input SRS doesn't have expected axis order HFA SRS reading: strip TOWGS84 when datum name is known, and use FindBestMatch() to try to find known SRS LIBKML: fix performance issue when writing large files Doc: gdalwarp/ogr2ogr -ct: be more explicit about axis order issues gdalinfo/ogrinfo text output: avoid weird truncation of coordinate epoch when its value is {year}.0 Update rfc36_open_by_drivername.rst as withdrawn gdal_create: allow specifying -burn before output dataset (master only) argparse/argparse.hpp: restore lost changes Doc: move build requirements to building_from_source, and put it in first place CI: workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0 building_from_source.rst: fix link Fix flake8 E721 warnings Update flake8 in .pre-commit-config.yaml Suppress MSVC warnings related to argparse.hpp Suppress MSVC warnings related to PublicDecompWT gdal_unit_test: make CheckEqualGeometries() not crash without GEOS CI: another attempt at fixing issues with too old vcruntime140.dll on image windows-latest 20240603.1.0 CI Windows: switch to Debug build to workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0 Revert "CI Windows: switch to Debug build to workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0" CI: disable running Windows tests to workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0 GTiff: fix reading angular projection parameters in non-degree unit (typically grads), when reading projection from ProjXXXXGeoKeys GTiff: fix writing angular projection parameters in non-degree unit (typically grads), when writing ProjXXXXGeoKeys Doc: gtiff.rst: document GTIFF_READ_ANGULAR_PARAMS_IN_DEGREE / GTIFF_WRITE_ANGULAR_PARAMS_IN_DEGREE Internal libgeotiff: resync with https://github.com/OSGeo/libgeotiff/pull/118 GTiff writer: limit number of GCPs in GeoTIFF tag to 10922 to avoid overflowing uint16_t Parquet: fix Coverity Scan warnings CI: workaround issue with dnf upgrade with fedora:rawhide Add VSIMultipartUploadXXXXX() API for multi-part upload Split VSIS3WriteHandle into VSIMultipartWriteHandle and VSIChunkedWriteHandle classes Move more methods to IVSIS3LikeFSHandlerWithMultipartUpload Fix test_vsis3_sync_timestamp() to be robust cpl_vsil_gzip.cpp: fix potential build issue GeoJSON: avoid false-positive identification as TopoJSON Add GDALOpenInfo::IsSingleAllowedDriver() GeoJSON/GeoJSONSeq/TopoJSON/ESRIJSON/JSONFG: relax identification checks when papszAllowedDrivers[] contains only the driver name swig/python/CMakeLists.txt: remove trace of code path only valid for CMake < 3.14 (we require 3.16+) STACTA: relax identification checks when papszAllowedDrivers[] contains only the driver name STACIT: correctly return the STACIT driver as the dataset's driver, instead of the VRT one (bugfix) STACIT: relax identification checks when papszAllowedDrivers[] contains only the driver name netCDFIdentifyFormat(): remove reference to no longer existing GMT raster driver netCDF: relax identification checks when papszAllowedDrivers[] contains only the driver name HDF5: relax identification checks when papszAllowedDrivers[] contains only the driver name BAG: relax identification checks when papszAllowedDrivers[] contains only the driver name S102/S104/S111: relax identification checks when papszAllowedDrivers[] contains only the driver name WMTS: relax identification checks when papszAllowedDrivers[] contains only the driver name OAPIF: relax identification checks when papszAllowedDrivers[] contains only the driver name WFS: relax identification checks when papszAllowedDrivers[] contains only the driver name WMS: relax identification checks when papszAllowedDrivers[] contains only the driver name GML: relax identification checks when papszAllowedDrivers[] contains only the driver name Revert "GML: relax identification checks when papszAllowedDrivers[] contains only the driver name" NAS: relax identification checks when papszAllowedDrivers[] contains only the driver name GMLAS: relax identification checks when papszAllowedDrivers[] contains only the driver name GTI: relax identification checks when papszAllowedDrivers[] contains only the driver name GDALDriver::QuietDeleteForCreateCopy(): do not set error state when attempting to open datasets TileDB: relax identification checks when papszAllowedDrivers[] contains only the driver name OGCAPI: relax identification checks when papszAllowedDrivers[] contains only the driver name CSV: relax identification checks when papszAllowedDrivers[] contains only the driver name XYZ: relax identification checks when papszAllowedDrivers[] contains only the driver name GTFS: relax identification checks when papszAllowedDrivers[] contains only the driver name Arrow: relax identification checks when papszAllowedDrivers[] contains only the driver name (for IPC format) VICAR: handle VICAR header being located beyond 2 GB within PDS3 file VICAR: relax identification checks when papszAllowedDrivers[] contains only the driver name download.rst: fix link to GDAL Spack package Remove obsolete traces of checking/defining cxx_std_17 Python: generate launcher shell/bat scripts for Python scripts in /swig/python/bin setdevenv.sh: add /swig/python/bin to PATH Add scripts/setdevenv.bat Doc: add a 'Setting development environment variables' paragraph CI: Test development launcher script ogrinfo.rst: fix wrong indentation ODS: implement IUpdateFeature() that was broken up to now XLSX: implement IUpdateFeature() that was broken up to now GeoJSON: implement IUpdateFeature() that was broken up to now test_ogrsf: test OGRLayer::UpdateFeature() GeoJSON/ODS/XLSX: declare missing capabilities DELETE_FIELD, REORDER_FIELDS, ALTER_FIELD_DEFN_FLAGS ODS/XLSX: fix CreateFeature() implementation when a FID is set ogr_geojson.py: run test_ogrsf in update mode Revert "CI: disable running Windows tests to workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0" Revert "CI: another attempt at fixing issues with too old vcruntime140.dll on image windows-latest 20240603.1.0" Revert "CI: workaround issue with too old vcruntime140.dll on image windows-latest 20240603.1.0" CI: build-windows-minimum: workaround crash in Java programs Fix crash in ogr2ogr (or Arrow based workflows) from GeoPackage/GeoParquet to PMTiles HDF5: make logic to assign per-band attribute more generic OGRSpatialReference::importFromUSGS(): use plain WGS84 datum with WGS84 ellipsoid, and identify EPSG code DXF: avoid slight numeric imprecision with closed lwpolyline and arcs OpenFileGDB: avoid harmless unsigned integer overflow (master only) (ossfuzz#69618) Contour: include minimum raster value as contour line when it exactly matches the first level GRIB: make .idx reading compatible of /vsisubfile/ CI: disable running gnm_test on build-windows-minimum CI: disable running Windows tests on build-windows-conda to workaround issue with image windows-latest 20240603.1.0 netCDF vector: use CF-1.8 with FORMAT=NC4 and GEOMETRY_ENCODING=WKT netcdf.py: disable cfchecker tests that can't pass CI: cfchecker: move it to Ubuntu 24.04 as the latest version of python netCDF4 (1.7.0) is not compatible of 20.04 Python bindings: make them compatible of SWIG 4.3.0dev CI: test swig master Rasterband methods (histogram, statistics): make them compatible of a dataset with more 2 billion blocks Add OGRGeometry::hasEmptyParts()/removeEmptyParts(), and use it in exportToGEOS() in the Centroid() context typos_allowlist.txt: update [ci skip] ESRIC: properly takes into account minLOD for .tpkx ESRIC: validate tile size GDALTranslate(): use directly generated VRT even if BLOCKXSIZE/BLOCKYSIZE creation options are specified ESRIC: add a EXTENT_SOURCE open option and default to FULL_EXTENT Doc: esric.rst: document EXTENT_SOURCE open option ESRIC: avoid potential nullptr deref (master only) Python bindings: fix/workaround installation into /usr/local/lib/python{version}/dist-packages when prefix is /usr/local XODR: fix to build with STRONG_CXX_WFLAGS GeoParquet: always write version=1.1.0 GDALSieveFilter(): avoid assert() when all pixels are masked (3.9.0 regression) Overview generation: fix multi-threaded bug, resulting in locks/crashes with GeoPackage in particular CSV: avoid Coverity Scan warning about WRAPPER_ESCAPE (CID 1547190) autotest/cpp/test_viewshed.cpp: pass argument by const reference (CID 1547189) VRT: fix serialization of separatable kernel in VRTKernelFilteredSource Code cleanup in VRTKernelFilteredSource OGR layer algebra: honour PROMOTE_TO_MULTI=YES for Points DXF: add a DXF_CLOSED_LINE_AS_POLYGON=YES/NO configuration option SQLite/GPKG: detect UNIQUE constraints expressed as a ', CONSTRAINT name UNIQUE (column_name)' at the end of CREATE TABLE OGRGenSQLResultsLayer: code cleanups OGR SQL: add SELECT expression [AS] OGR_STYLE HIDDEN to be able to specify feature style string without generating a visible column swq_parser.cpp: manual change to make MSVC happy gpkg.py: do not call gdal.Open() with invalid argument OGRFeature::SetField(int, double): avoid UndefinedBehavior when passing NaN OGRFeature::SetField(int, GIntBig): avoid UndefinedBehavior when passing value in [INT64_MAX - 512, INT64_MAX - 1] range OGRLayer::WriteArrowBatch(): avoid UndefinedBehavior when trying to convert NaN to Int64 gdal_priv_templates.hpp: implement GDALIsValueInRange<[u]int64_t]>, and add GDALIsValueExactAs<> gdal_translate: use GDALIsValueExactAs<> to check range of [u]int64 nodata GTiff: DiscardLsb(): use GDALIsValueExactAs<> to check range of nodata netCDF: use GDALIsValueExactAs<> to check range of [u]int64 nodata Zarr: SerializeNumericNoData(): use CPLJSonObject::Add(uint64_t) to avoid potential undefined behavior casts GPKG: use GDALIsValueInRange<> to avoid potential undefined behavior casts OpenFileGDB: use GDALIsValueInRange<> to avoid potential undefined behavior casts GDALRasterBand::ComputeStatistics(): fix bad progress percentage computation (recent regression caused by 42adada1f1ff55a5109de17565d3c107de48c531) OGRSpatialReference::importFromUSGS(): avoid out-of-bounds access to array (fix regression of cab1cc95a3e9343d003a7e21acea4c3efe56b88d) test_ogr_pmtiles_read_corrupted_min_zoom_larger_than_30: skip on s390x OGR SQL: fix crash when the ON expression of a JOIN contains OGR special fields (in particular feature id) CSV: allow inf, -inf and nan as numeric values Python bindings: check validity of GDALAccess flag passed to gdal.Open() OGR SQL: use Kahan-Babuska-Neumaier algorithm for accurate SUM(), like in recent SQLite versions OGR SQL: avoid going through string serialization for MIN(), MAX(), SUM(), AVG() on numeric fields OGRSQL: add STDDEV_POP() and STDDEV_SAMP() aggregate functions SQLite/GPKG: add STDDEV_POP() and STDDEV_SAMP() aggregate functions [Lint] OSM: more usage of std::vector, std::unique_ptr, and C++ cast operator Fix number of new Coverity Scan warnings, likely due to new version of the tool Doc: MapInfo: document supported encodings ogr2ogr: error out if WKT argument of -clipsrc/-clipdst is an invalid geometry (#10292) ecw.rst: mention libecwj2-3.3.patch GeoJSON: avoid multiple debug messages about mixed-geometry type Add OGRCurve::reversePoints(), and deprecated OGRLinearRing::reverseWindingOrder() GML geometry reader: add support for gml:OrientableCurve Doc: advertize 3.9.1 release validate_gpkg.py: make it robust to CURRENT_TIMESTAMP instead of 'now' LIBKML: fix writing a .kmz to cloud storage Python bindings: fix typos in gdal.Footprint() help message configoptions.rst: remove inappropriate marker CI: fix s390x builds GTiff: make SetNoDataValue(double) work on a Int64/UInt64 band gdal_rasterize: on a int64 band, set nodata value as int64 gdal_rasterize: restrict to defaulting to Int64 raster data type only if the output driver supports it (and the burned field is Int64) PG: fix ogr2ogr scenarios to PostgreSQL when there are several input layer names like schema_name.layer_name (3.9.0 regression) gdalenhance: fix memleak (fixes #10323) typo fix [ci skip] GTiff: handle TIFF color map that uses a 256 multiplication factor GTiff: use std::unique_ptr<GDALColorTable> instead of raw pointer CMake: move setting C/C++ standards from CMakeLists.txt to cmake/helpers/GdalCAndCXXStandards.cmake CMake: move things related to setting compilation flags to cmake/helpers/GdalCompilationFlags.cmake GdalStandardIncludes.cmake: make it work in STANDALONE mode GdalVersion.cmake: make it work in STANDALONE mode SystemSummary.cmake: report C++17 related flags rather than C++11 ones CMake: move code from CheckDependentLibraries.cmake to CheckDependentLibrariesCommon.cmake GdalDriverHelper.cmake: add infrastructure for STANDALONE mode CMake: add SetupStandalonePlugin.cmake CMake: make MrSID buildable in standalone mode tiff_srs.py: skip 2 tests if libgeotiff < 1.6.0 CI: test building MrSID driver in standalone mode CMake: make Kakadu driver buildable in standalone mode CMake: make OCI driver buildable in standalone mode CI: test building OCI driver in standalone mode GML writer: fix missing SRS in Featurecollection's boundedBy element (3.9.1 regression) docker/README.md: advertize 3.9.1 docker images [ci skip] test_ogrsf: fix when layer name is a reserved SQL keyword GTiff: emit clearer error when attempting to create external JPEG compressed overviews on dataset with color table gdallocationinfo: avoid extra newline character in -valonly mode if coordinate is outside raster extent (3.9.0 regression) ISGDataset: fix performance inefficiencies (CID 1549336, 1549337, 1549338, 1549339) WMTS: add utility methods to get tile matrix / tile matrix limits extent WMTS: make sure not to request tiles outside of tile matrix / tile matrix limits, if the dataset extent goes beyond them WMTS: clip layer extent with union of extent of tile matrices gdalwarp: fix -srcnodata/-dstnodata to accept negative value in first position (3.9.0 regression) gdalbuildvrt: -fix -srcnodata/-vrtnodata to accept negative value in first position (3.9.0 regression) gdal_translate: fix -a_nodata to accept '-inf' as input (3.9.0 regression) argparse: accept '-inf' as value for numeric arguments GDALMDArray::GetResampled(): take into account good_wavelengths array for EMIT dataset orthorectification Fix compilation against openssl-libs-3.2.2-3 of fedora:rawhide Doc: fix link OpenFileGDB: fix attribute filter when an equality comparison is involved… (#10346) ogr2ogr: speed-up -clipsrc/-clipdst by avoiding GEOS when possible ogr2ogr: add -skipinvalid to skip features whose geometry is not valid w.r.t Simple Features OSM: add a [general] section at top of osmconf.ini to make it INI compliant (and Python's configparser friendly) gdal2tiles: fix exception with --nodata-values-pct-threshold but not --excluded-values on a multi-band raster typo fix [ci skip] WKT geometry importer: accept (non conformant) PointZ/PointZM without space as generated by current QGIS versions Modernize test_ogr_wkbwkt_test_import_wkt_sf12() OGR SQL lexer: fix memory leak on invalid expression (master only) SRP: avoid potential integer overflow when ZNA == INT_MIN OGRAVCE00Layer::FormPolygonGeometry(): avoid integer overflow when nArcId == INT_MIN ECW: emit error message before emitting progression, and one cleanup cpl_vsi_mem.cpp: avoid accessing bEOF under lock (CID 1549765, 1549764) gdalmultidim_gltorthorectification.cpp: avoid warning about using a moved pointer (CID 1549763) ogrshapedatasource.cpp: consistently access variable under lock (CID 1549762) OGR_GPKG_FillArrowArray_Step(): make sure to access nCountRows only under mutex (CID 1549761) ograrrowlayer.hpp: silence false positive (CID 1548670) gdalchecksum.cpp: silence false positive (CID 1548660) Const correctness improvements in GDALReadTabFile2() and GDALReadWorldFile2() Const correctness change in GDALPamDataset::TryLoadXML()/TryLoadAux() signature GDALOpenInfo::GetSiblingFiles(): improve documentation GDALDefaultOverviews: add a Initialize() method that takes a GDALOpenInfo* argument GTiff: use new GDALDefaultOverviews::Initialize() and a few const correctness improvements ECW: use GetSiblingFiles() GRIB: use GetSiblingFiles() JP2KAK: use GetSiblingFiles() JPEG: const-correctness improvement PNG: use new GDALDefaultOverviews::Initialize() method JP2OpenJPEG: use GetSiblingFiles() EXIF reader: strip trailing space/nul character in ASCII tags EXIFExtractMetadata(): support DNG tags DNG_UniqueCameraModel/DNG_CameraSerialNumber, and report in CPLDebug() messages unknown tags JPEG: make sure not to expose DNG_UniqueCameraModel/DNG_CameraSerialNumber if the corresponding EXIF tags are set at the same value gdalinfo_output.schema.json: pin stac-extensions/eo to v1.1.0 JPEG: add support for reading Pix4DMapper CRS from XMP Doc: ogrgeometry_cpp.rst: add OGRSimpleCurve CMake: try to find libOpenDRIVE only with CMake Config files typo fix [ci skip] Internal zlib: update to 1.3.1 Internal libpng: update to 1.6.43 Doc: WMTS: better document caching and config options gdal_retile: error out with clear message when trying to retile a file with a geotransform with rotation terms gdal_retile.py: remove Dataset/Datasource.Destroy() calls autotest: remove/replace .Destroy() calls Revert "CI: disable running Windows tests on build-windows-conda to workaround issue with image windows-latest 20240603.1.0" SetupStandalonePlugin.cmake: add a STRICT_VERSION_CHECK mode CMake: make Parquet driver buildable in standalone mode CMake: make Arrow driver buildable in standalone mode CMake: make JP2OpenJPEG driver buildable in standalone mode CMake: make TileDB driver buildable in standalone mode ogr2ogr: more unique_ptr uses CMake: add cmake/helpers/GdalCMakeMinimumRequired.cmake Shape: fix recognizing an empty string as a NULL date OGRSpatialReference::EPSGTreatsAsLatLong()/EPSGTreatsAsNorthingEasting(): remove the check on the EPSG authority Java bindings: document EPSGTreatsAsNorthingEasting() and test it ogr_oapif.py: avoid 'code 500, message Unexpected GET request for /oapif' type of messages OGCAPI: fix reading encodingInfo/dataType for Coverage API OGCAPI: do not emit 'Server does not support specified IMAGE_FORMAT: AUTO' when opening a vector layer with MVT tiles only OAPIF: fix resolving of relative links CI: adapt for Conda-Forge libgdal feedstock changes Doc: update for conda-forge libgdal-core changes OGR SQL: do not make backslash a special character inside single-quoted strings, to improve compliance wih SQL92 Doc: add a Source tree layout paragraph (#10427) Fix compilation against libarchive-3.3.3-5 as shipped by RHEL 8 PDS4: flip image along horizontal axis when horizontal_display_direction = Right to Left CI: fix issue with build-linux-ubuntu-focal and setuptools 71.0.1 [Lint] VRT: remove use of magic constant -1.0 for uinitialized src/dst window [Lint] VRT: more use of the GetType() method, reduce number of hard-coded strings VRT: add a VRTMapSharedResources class to encapsulate access, and allow thread-safe usage Add CPLQuadTreeHasMatch() VRTSourcedRasterBand::IsMosaicOfNonOverlappingSimpleSourcesOfFullRasterNoResAndTypeChange(): use CPLQuadTreeHasMatch() Add CPLJobQueue::WaitEvent() VRTDataset::CheckCompatibleForDatasetIO(): return bool, and actually cache state Add VRTSimpleSource::DstWindowIntersects() VRTDataset::IRasterIO(): fallback to VRTSourcedRasterBand::IRasterIO() on single band datasets VRT: make sure sources' RasterIO() uses GDALRasterIOExtraArg::pfnProgress Add GDALGetMaxDatasetPoolSize() VRT: multi-thread IRasterIO() in 'simple' situations VRTSourcedRasterBand::ComputeStatistics(): use VRTDataset::GetNumThreads() VRT doc: enhance section about multithreading optimizations CMake: make ECW driver buildable in standalone mode CMake: make GeoRaster driver buildable in standalone mode NITF 12-bit JPEG writer: fix potential crash if raster width > block width Doc: API: mention header file to include Doc: gdaltindex: fix example netCDF multidim: add OpenMDArray() options to set up nc_set_var_chunk_cache() GMLAS: avoid crash on a OSSFuzz generated xsd NITF: Create()/CreateCopy(): make sure that provided ABPP creation option is zero left-padded NITF: add an alias of existing ABPP creation option as NBITS; propagate NBITS/ABPP creation option to JPEG2000 drivers NITF: remove ABPP field as NBITS IMAGE_STRUCTURE metadata item, instead of NBPP Add const-safe GDALDataset::GetOpenOptions() method GTI: multi-threaded IRasterIO() for non-overlapping tiles [Lint] VRTSourcedRasterBand::IGetDataCoverageStatus(): use smart pointers Shape: fix off-by-one write heap buffer overflow when deleting exactly 128, 232, etc. features and repacking GTFS: fix error when applying an attribute filter on a field whose advertized data type is not string XLSX: support documents whose XML elements have a prefix OGRCurvePolygon::addRing(): take const pointer [Lint] OSM: const'ify and smartptr'ify OSM: fix master regression, without much visible consequence but noisy debug messages /vsimem/: remove useless bExtendFileAtNextWrite member /vsimem/: more efficient SetLength() OSM: actually reserve memory for /vsimem/ temp files XODR: add a cast MRF/LERC: check that values are within target type range before casting Arrow/Parquet/generic arrow: add write support for arrow.json extension OGRLineString::SetPoint(): avoid int overflow if passing iPoint = INT_MAX OGRCurveCollection::addCurveDirectly(): avoid int overflow if adding to a already huge collection OGRGeometryCollection::addGeometryDirectly(): avoid int overflow if adding to a already huge collection ogrgeometrycollection.cpp: some cleanups Add a cpl::contains(container, value) helper gcore: use cpl::contains() GTI: start looking for OVERVIEW_<idx>_xxxx metadata items at index 0 gti.py: more realistic test cases for overviews GTI: automatically add overviews of overviews, unless the OVERVIEW_LEVEL=NONE open option is specified GTI: implement GetDataCoverageStatus() Python bindings: make GetStatistics() and ComputeStatistics() return None in case of error (#10462) GeoJSON: make sure geometry is reprojected even when it is invalid after coordinate rounding (3.9.0 regression) GDALCopyWords(): Fix double->uint64 when input value > UINT64_MAX that was wrongly converted to 0 Doc of OGRGeometry methods/functions: clarify that returned geometries must be freed, and how gdaladdo doc: advertize -r bilinear GTiff: honor GDAL_DISABLE_READDIR_ON_OPEN when working on a dataset opened with OVERVIEW_LEVEL open option LIBKML: fix LIBKML_RESOLVE_STYLE=YES when reading a KML file with dataset-level styles (3.9.1 regression) GDALCopyWords(): Fix double->uint64 when input value > UINT64_MAX that was wrongly converted to 0 autotest/cpp/CMakeLists.txt: move dependency to gdal_plugins to test-unit GDALRasterBand: add convenience ReadRaster() methods Python bindings: avoid C++ bad_alloc in PythonBindingErrorHandler() Polygonize: optimizations to reduce runtime Polygonize: make it catch out of memory situations OGRGeometry classes: add a bool return type for methods that can fail LIBKML: fix reading/writing style URL in KMZ files GTI: emit warning if bounding box from the tile's feature extent in the index does not match actual bounding box of tile gdalinfo: add -nonodata and -nomask options GRIB: display hint to speed-up operations when using gdalinfo on a remote GRIB2 file with an .idx side car file PG: fix support for geometry/geography OID in range [2147483648, 4294967295] OGR_GreatCircle_ API: do not hardcode Earth radius Doc: document multidimensional API object lifetime [Lint] ogr: use cpl::contains() [Lint] arrow_common: use cpl::contains() [Lint] geojson: use cpl::contains() [Lint] GPKG: use cpl::contains() [Lint] OpenFileGDB: use cpl::contains() [Lint] SQLite: use cpl::contains() LIBKML writing: validate longitude, latitude to be in range Parquet: detect bbox geometry column when opening current Overture Maps in dataset mode DumpGeoTIFFBox(): avoid off-by-one read caused by recent 1b1dc79752550e232ef1977aa18d4df182024935 change (master only) CPLFormFilename()/CPLGetDirname()/CPLGetPath(): make it work with 'vsicurl/http://example.com?foo' type of filename, to fix Zarr driver CSV: emit warning when reading invalid WKT Forward port GDAL bugfixes releases from 3.4.x to 3.9.x to NEWS.md, and split GDAL 2.x and 1.x news into their own files Update HOWTO-RELEASE [ci skip] SQLite: run deferred table creation before StartTransaction Skip test_vsiaz_write_blockblob_chunk_size_1() on CI gdallocationinfo.cpp: use GDALRasterIOGetResampleAlg() GPKG/SQLITE SQL: extend gdal_get_pixel_value()/gdal_get_layer_pixel_value() to support an interpolation method cpl::contains(): use find() method for implementation to address https://github.com/OSGeo/gdal/pull/10464#discussion_r1694287217 EPSGTreatsAsNorthing…
Fixes #129